class A:
    @classmethod            # classmethod：动态方法：被装饰的方法，不用创建对象来引用，类可以直接调用
    def bb(self):       # 表示对象本身
        print("我是bb")
    @staticmethod           # staticmethod：静态方法，被装饰的方法，就是一个普通的函数，类可以调用，对象也可以调用
    def numadd(a,b):
        return a+b


if __name__ == '__main__':      # 程序运行主入口
    # 实例化a对象
    a = A()
    # a.bb()

    # 不创建对象，直接调用类方法。类方法必须要通过对象来调用
    # A.bb(a)

    # 加了动态方法的函数，类可以直接调用
    A.bb()

    # 使用对象调用静态方法
    print(a.numadd(10, 20))

    # 使用类调用静态方法
    print(A.numadd(10,20))